package view.contacto;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;

import model.Alumno;
import model.Area;
import model.Contacto;
import model.Curso;
import model.PersonalAdministrativo;
import model.utils.Util;

import com.toedter.calendar.JDateChooser;

public class ConsultaContacto extends JDialog {

	private static final long serialVersionUID = 1L;
	private JTextField textAlumno;
	private JTextArea textDescripcion;
	private JTextField textArea;
	private JTextField textCurso;
	private JTextField textEmpleado;
	private JDateChooser dateRealizacion;
	private Contacto contacto;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ConsultaContacto window = new ConsultaContacto();
					window.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public ConsultaContacto() {
		initialize();
	}

	/**
	 * Create the application.
	 */
	public ConsultaContacto(Contacto contacto) {
		this.contacto = contacto;
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		setIconImage(Toolkit.getDefaultToolkit().getImage(ConsultaContacto.class.getResource("/Icon_/Dial.gif")));
		setTitle("Consulta Contacto");
		setBounds(100, 100, 450, 386);
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		getContentPane().setLayout(null);
		setModal(true);
		JLabel lblFechaDeRealizacion = new JLabel("Fecha de realizacion:");
		lblFechaDeRealizacion.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblFechaDeRealizacion.setBounds(12, 11, 142, 14);
		getContentPane().add(lblFechaDeRealizacion);

		JLabel lblAlumno = new JLabel("Alumno:");
		lblAlumno.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblAlumno.setBounds(162, 11, 78, 14);
		getContentPane().add(lblAlumno);

		this.textAlumno = new JTextField();
		this.textAlumno.setBounds(162, 32, 262, 20);
		getContentPane().add(textAlumno);
		this.textAlumno.setColumns(10);

		JLabel lblDescripcion = new JLabel("Descripcion:");
		lblDescripcion.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblDescripcion.setBounds(12, 63, 124, 14);
		getContentPane().add(lblDescripcion);

		this.textDescripcion = new JTextArea();
		textDescripcion.setLineWrap(true);
		textDescripcion.setWrapStyleWord(true);

		JScrollPane scrollTextArea = new JScrollPane();
		scrollTextArea.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollTextArea.setViewportView(textDescripcion);
		scrollTextArea.setBounds(12, 88, 414, 118);
		getContentPane().add(scrollTextArea);

		JLabel lblArea = new JLabel("Area:");
		lblArea.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblArea.setBounds(12, 220, 46, 14);
		getContentPane().add(lblArea);

		this.textArea = new JTextField();
		this.textArea.setBounds(12, 242, 196, 20);
		getContentPane().add(textArea);
		this.textArea.setColumns(10);

		this.textCurso = new JTextField();
		this.textCurso.setColumns(10);
		this.textCurso.setBounds(228, 242, 196, 20);
		getContentPane().add(textCurso);

		JLabel lblCurso = new JLabel("Curso:");
		lblCurso.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblCurso.setBounds(228, 220, 46, 14);
		getContentPane().add(lblCurso);

		JLabel lblEmpleado = new JLabel("Empleado:");
		lblEmpleado.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblEmpleado.setBounds(12, 280, 99, 14);
		getContentPane().add(lblEmpleado);

		this.textEmpleado = new JTextField();
		this.textEmpleado.setBounds(12, 300, 196, 20);
		getContentPane().add(textEmpleado);
		this.textEmpleado.setColumns(10);

		JButton btnCerrar = new JButton("  Cerrar");
		btnCerrar.setIcon(new ImageIcon(ConsultaContacto.class.getResource("/Icon_/exit.png")));
		btnCerrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
			}
		});
		btnCerrar.setBounds(284, 295, 114, 30);
		getContentPane().add(btnCerrar);

		dateRealizacion = new JDateChooser();
		dateRealizacion.setBounds(22, 32, 114, 20);
		getContentPane().add(dateRealizacion);

		loadData(contacto);
		setVisible(true);
	}

	private void loadData(Contacto contacto) {
		this.dateRealizacion.setCalendar(contacto.getFecha());
		Alumno alumno = contacto.getAlumno();
		this.textAlumno.setText(Util.obtainName(alumno));
		this.textDescripcion.setText(contacto.getDescripcion());
		List<Area> areas = contacto.getAreas();
		if (areas != null) {
			this.textArea.setText(areas.get(0).getNombre());
		}
		List<Curso> cursos = contacto.getCursos();
		if (cursos != null) {
			this.textCurso.setText(cursos.get(0).getNombre());
		}
		PersonalAdministrativo personalAdministrativo = contacto.getPersonalAdministrativo();
		this.textEmpleado.setText(Util.obtainName(personalAdministrativo));
	}
}
